<template>
  <UploadExcel :on-success="handleSuccess" />
</template>

<script>
import { addUserListApi } from '@/api/employees'
import { Message } from 'element-ui'
export default {
  computed: {
    type() {
      return this.$route.query.type
    }
  },
  methods: {
    handleSuccess({ results }) {
      // 员工列表添加
      if (this.type === 'import') {
        this.addUserList(results)
      }
    },
    /**
     * 员工列表添加
     */
    async  addUserList(results) {
      const userRelations = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber'
      }
      // 1.处理数据 由于数据与接口要求不同处理一下
      // 1.1声明数组接收处理后的数据
      const list = []
      results.forEach(e => {
        // 2.e是数组中的每个对象 进行遍历
        // 2.2新对象接收值
        const obj = {}
        for (const key in e) {
          // 2.1 键
          const englishKey = userRelations[key]
          // 判断键是否为数组中的内容 如果是使用时间格式化
          if (['timeOfEntry', 'correctionTime'].includes(englishKey)) {
            obj[englishKey] = this.formatExcelDate(e[key], '-')
          } else {
            // 2.3修改对象
            obj[englishKey] = e[key]
          }
        }
        // 3.数据处理完成后 push到新数组
        list.push(obj)
      })
      // 调用接口
      await addUserListApi(list)
      // 提示
      Message.success('批量导入成功')
      // 回到员工列表页（上一页）
      this.$router.go(-1)
    },
    /**
     * 转换excel的日期格式
     */
    formatExcelDate(numb, format) {
      const time = new Date((numb) * 24 * 3600000 + 1)
      time.setYear(time.getFullYear() - 70)
      const year = time.getFullYear() + ''
      const month = time.getMonth() + 1 + ''
      const date = time.getDate() - 1 + ''
      if (format && format.length === 1) {
        return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
      }
      return year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
    }
  }
}
</script>

<style>

</style>
